// CherryMerry ( Mikhail Tomilenko ), Reverse Entertainment, 2021-2024

#pragma once

#include "CoreMinimal.h"
#include "Components/ActorComponent.h"

#include <NifestGame/UI/Gameplay/HUD/PlayerHUD.h>
#include <NifestGame/UI/Gameplay/Respawn/RespawnMenu.h>
#include <NifestGame/UI/System/MainMenu/MainMenu.h>

#include "PlayerUIManager.generated.h"


UCLASS( ClassGroup=(Custom), meta=(BlueprintSpawnableComponent) )
class NIFESTGAME_API UPlayerUIManager : public UActorComponent
{
	GENERATED_BODY()

public:	
	UPlayerUIManager();

protected:
	virtual void BeginPlay() override;

public:	
	/* Variables */
	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	TSubclassOf<class UPlayerHUD> PlayerHUDClass;

	UPROPERTY()
	class UPlayerHUD* PlayerHUDMenu;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	TSubclassOf<class URespawnMenu> RespawnMenuClass;

	UPROPERTY()
	class URespawnMenu* RespawnMenu;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	TSubclassOf<class UMainMenu> MainMenuClass;

	UPROPERTY()
	class UMainMenu* MainMenu;

	/* Functions */
	virtual void CreateMainMenu();
	virtual void CreateHUDWidget();
	virtual void CreateRespawnWidget();
	virtual void RemoveRespawnWidget();
};
